package com.ruoyi.system.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.ChatGroupMapper;
import com.ruoyi.system.domain.ChatGroup;
import com.ruoyi.system.service.IChatGroupService;

/**
 * 群聊（存储群聊基本信息及管理配置）Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-09-12
 */
@Service
@Slf4j
public class ChatGroupServiceImpl implements IChatGroupService {
    @Autowired
    private ChatGroupMapper chatGroupMapper;

    /**
     * 查询群聊（存储群聊基本信息及管理配置）
     * 
     * @param groupId 群聊（存储群聊基本信息及管理配置）主键
     * @return 群聊（存储群聊基本信息及管理配置）
     */
    @Override
    public ChatGroup selectChatGroupByGroupId(String groupId)
    {
        return chatGroupMapper.selectChatGroupByGroupId(groupId);
    }

    /**
     * 查询群聊（存储群聊基本信息及管理配置）列表
     * 
     * @param chatGroup 群聊（存储群聊基本信息及管理配置）
     * @return 群聊（存储群聊基本信息及管理配置）
     */
    @Override
    public List<ChatGroup> selectChatGroupList(ChatGroup chatGroup)
    {
        return chatGroupMapper.selectChatGroupList(chatGroup);
    }

    /**
     * 新增群聊（存储群聊基本信息及管理配置）
     * 
     * @param chatGroup 群聊（存储群聊基本信息及管理配置）
     * @return 结果
     */
    @Override
    public int insertChatGroup(ChatGroup chatGroup)
    {
        chatGroup.setCreateTime(DateUtils.getNowDate());
        return chatGroupMapper.insertChatGroup(chatGroup);
    }

    /**
     * 修改群聊（存储群聊基本信息及管理配置）
     * 
     * @param chatGroup 群聊（存储群聊基本信息及管理配置）
     * @return 结果
     */
    @Override
    public int updateChatGroup(ChatGroup chatGroup)
    {
        chatGroup.setUpdateTime(DateUtils.getNowDate());
        return chatGroupMapper.updateChatGroup(chatGroup);
    }

    /**
     * 批量删除群聊（存储群聊基本信息及管理配置）
     * 
     * @param groupIds 需要删除的群聊（存储群聊基本信息及管理配置）主键
     * @return 结果
     */
    @Override
    public int deleteChatGroupByGroupIds(String[] groupIds)
    {
        return chatGroupMapper.deleteChatGroupByGroupIds(groupIds);
    }

    /**
     * 删除群聊（存储群聊基本信息及管理配置）信息
     * 
     * @param groupId 群聊（存储群聊基本信息及管理配置）主键
     * @return 结果
     */
    @Override
    public int deleteChatGroupByGroupId(String groupId)
    {
        return chatGroupMapper.deleteChatGroupByGroupId(groupId);
    }

    @Override
    public void test() {

        Map<String, Map<String, Integer>> map = new HashMap<>();

        Map<String, Integer> map1 = new HashMap<>();

        map1.put("2025-09-21",400);
        map1.put("2025-09-22",200);
        map1.put("2025-09-23",300);



        map.put("429",map1);


        String data = JSON.toJSONString(map);

        ChatGroup chatGroup = new ChatGroup();
        chatGroup.setGroupId(IdUtils.simpleUUID());
        chatGroup.setGroupName(data);
        chatGroup.setOwnerId(1L);
        insertChatGroup(chatGroup);


        ChatGroup chatGroup1 = selectChatGroupByGroupId(chatGroup.getGroupId());
        log.info("chatGroup1.groupId:{}",chatGroup1.getGroupId());
        log.info("chatGroup1.groupName: 解析前：{}",chatGroup1.getGroupName());
        Map<String, Map<String, Integer>> map2 = JSON.parseObject(chatGroup1.getGroupName(), Map.class);
        log.info("chatGroup1.groupName: 解析后：{}",map2);


    }
}
